home *** CD-ROM | disk | FTP | other *** search
/ Skunkware 5 / Skunkware 5.iso / man / cat.1 / zoo.1 < prev   
Text File  |  1995-07-25  |  70KB  |  1,453 lines

  1.  
  2.  
  3.  
  4.      ZZZZOOOOOOOO((((1111))))            UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV ((((JJJJuuuullllyyyy 7777,,,, 1111999999991111))))             ZZZZOOOOOOOO((((1111))))
  5.  
  6.  
  7.  
  8.      NNNNAAAAMMMMEEEE
  9.           zoo - manipulate archives of files in compressed form
  10.  
  11.      SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
  12.           zzzzoooooooo {aaaaccccffffDDDDeeeegggghhhhHHHHllllLLLLPPPPTTTTuuuuUUUUvvvvVVVVxxxx}[aaaaAAAAccccCCCCddddEEEEffffgggghhhhIIIImmmmMMMMnnnnNNNNooooOOOOppppPPPPqqqqSSSSuuuu1111::::////....@@@@nnnn++++----====]
  13.           archive [file] ...
  14.           zzzzoooooooo ----ccccoooommmmmmmmaaaannnndddd archive [file] ...
  15.           zzzzoooooooo hhhh
  16.  
  17.      DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
  18.           _Z_o_o is used to create and maintain collections of files in
  19.           compressed form.  It uses a Lempel-Ziv compression algorithm
  20.           that gives space savings in the range of 20% to 80%
  21.           depending on the type of file data.  _Z_o_o can store and
  22.           selectively extract multiple generations of the same file.
  23.           Data can be recovered from damaged archives by skipping the
  24.           damaged portion and locating undamaged data with the help of
  25.           _f_i_z(_1).
  26.  
  27.           This documentation is for version 2.1.  Changes from
  28.           previous versions are described in the section labelled
  29.           CCCCHHHHAAAANNNNGGGGEEEESSSS.
  30.  
  31.           The command _z_o_o hhhh gives a summary of commands.  Extended
  32.           multiscreen help can be obtained with _z_o_o HHHH.
  33.  
  34.           _Z_o_o will not add an archive to itself, nor add the archive's
  35.           backup (with ....bbbbaaaakkkk extension to the filename) to the archive.
  36.  
  37.           _Z_o_o has two types of commands:  Expert commands, which
  38.           consist of one command letter followed by zero or more
  39.           modifier characters, and Novice commands, which consist of a
  40.           hyphen (`-') followed by a command word that may be
  41.           abbreviated.  Expert commands are case-sensitive but Novice
  42.           commands are not.
  43.  
  44.           When _z_o_o adds a file to an existing archive, the default
  45.           action is to maintain one generation of each file in an
  46.           archive and to mark any older generation as deleted.  A
  47.           limit on the number of generations to save can be specified
  48.           by the user for an entire archive, or for each file
  49.           individually, or both.  _Z_o_o deletes a stored copy of an
  50.           added file if necessary to prevent the number of stored
  51.           generations from exceeding the user-specified limit.
  52.  
  53.           Deleted files may be later undeleted.  Archives may be
  54.           packed to recover space occupied by deleted files.
  55.  
  56.           All commands assume that the archive name ends with the
  57.           characters ....zzzzoooooooo unless a different extension is supplied.
  58.  
  59.           NNNNoooovvvviiiicccceeee ccccoooommmmmmmmaaaannnnddddssss
  60.  
  61.  
  62.  
  63.      Page 1                                           (printed 3/9/94)
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70.      ZZZZOOOOOOOO((((1111))))            UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV ((((JJJJuuuullllyyyy 7777,,,, 1111999999991111))))             ZZZZOOOOOOOO((((1111))))
  71.  
  72.  
  73.  
  74.           Novice commands may be abbreviated to a hyphen followed by
  75.           at least one command character.  Each Novice command works
  76.           in two stages. First, the command does its intended work.
  77.           Then, if the result was that one or more files were deleted
  78.           in the specified archive, the archive is packed.  If packing
  79.           occurs, the original unpacked archive is always left behind
  80.           with an extension of ....bbbbaaaakkkk.
  81.  
  82.           No Novice command ever stores the directory prefix of a
  83.           file.
  84.  
  85.           The Novice commands are as follows.
  86.  
  87.           ----aaaadddddddd    Adds the specified files to the archive.
  88.  
  89.           ----ffffrrrreeeesssshhhheeeennnn
  90.                Adds a specified file to the archive if and only if an
  91.                older file by the same name already exists in the
  92.                archive.
  93.  
  94.           ----ddddeeeelllleeeetttteeee
  95.                Deletes the specified files from the archive.
  96.  
  97.           ----uuuuppppddddaaaatttteeee
  98.                Adds a specified file to the archive either:  if an
  99.                older file by the same name already exists in the
  100.                archive or:  if a file by the same name does not
  101.                already exist in the archive.
  102.  
  103.           ----eeeexxxxttttrrrraaaacccctttt
  104.                Extracts the specified files from the archive.  If no
  105.                file is specified all files are extracted.
  106.  
  107.           ----mmmmoooovvvveeee
  108.                Equivalent to ----aaaadddddddd except that source files are deleted
  109.                after addition.
  110.  
  111.           ----pppprrrriiiinnnntttt
  112.                Equivalent to ----eeeexxxxttttrrrraaaacccctttt except that extracted data are
  113.                sent to standard output.
  114.  
  115.           ----lllliiiisssstttt
  116.                Gives information about the specified archived files
  117.                including any attached comments.  If no files are
  118.                specified all files are listed.  Deleted files are not
  119.                listed.
  120.  
  121.           ----tttteeeesssstttt
  122.                Equivalent to ----eeeexxxxttttrrrraaaacccctttt except that the extracted data
  123.                are not saved but any errors encountered are reported.
  124.  
  125.           ----ccccoooommmmmmmmeeeennnntttt
  126.  
  127.  
  128.  
  129.      Page 2                                           (printed 3/9/94)
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136.      ZZZZOOOOOOOO((((1111))))            UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV ((((JJJJuuuullllyyyy 7777,,,, 1111999999991111))))             ZZZZOOOOOOOO((((1111))))
  137.  
  138.  
  139.  
  140.                Allows the user to add or update comments attached to
  141.                archived files.  When prompted, the user may:  type a
  142.                carriage return to skip the file, leaving any current
  143.                comment unchanged;  or type a (possibly null) comment
  144.                of up to 32,767 characters terminated by ////eeeennnndddd (case-
  145.                insensitive) on a separate line;  or type the end-of-
  146.                file character (normally control D) to skip all
  147.                remaining files.
  148.  
  149.           ----ddddeeeelllleeeetttteeee
  150.                Deletes the specified files.
  151.  
  152.           The correspondence between Novice and Expert commands is as follows.
  153.  
  154.           tab(@);
  155.           l l l.
  156.           Novice@@Equivalent
  157.           Command@Description@Expert Command
  158.           _
  159.           -add@add files to archive@aP:
  160.           -extract@extract files from archive@x
  161.           -move@move files to archive@aMP:
  162.           -test@test archive integrity@xNd
  163.           -print@extract files to standard output@xp
  164.           -delete@delete files from archive@DP
  165.           -list@list archive contents@VC
  166.           -update@add new or newer files@aunP:
  167.           -freshen@by add newer files@auP:
  168.           -comment@add comments to files@c
  169.  
  170.           EEEExxxxppppeeeerrrrtttt ccccoooommmmmmmmaaaannnnddddssss
  171.  
  172.           The general format of expert commands is:
  173.  
  174.           _z_o_o {aaaaccccffffDDDDeeeegggghhhhHHHHllllLLLLPPPPTTTTuuuuUUUUvvvvVVVVxxxx}[aaaaAAAAccccCCCCddddEEEEffffgggghhhhIIIImmmmMMMMnnnnNNNNooooOOOOppppPPPPqqqqSSSSuuuu1111::::////....@@@@nnnn++++----====]
  175.           archive [file] ...
  176.  
  177.           The characters enclosed within {} are commands.  Choose any
  178.           one of these.  The characters enclosed within [] just to the
  179.           right of the {} are modifiers and zero or more of these may
  180.           immediately follow the command character.  All combinations
  181.           of command and modifier characters may not be valid.
  182.  
  183.           Files are added to an archive with the command:
  184.  
  185.           _z_o_o {aaaauuuu}[ccccffffhhhhIIIIMMMMnnnnPPPPqqqquuuu::::++++----] archive [file] ...
  186.  
  187.           Command characters are:
  188.  
  189.           aaaa    Add each specified file to archive.  Any already-
  190.                archived copy of the file is deleted if this is
  191.                necessary to avoid exceeding the user-specified limit
  192.  
  193.  
  194.  
  195.      Page 3                                           (printed 3/9/94)
  196.  
  197.  
  198.  
  199.  
  200.  
  201.  
  202.      ZZZZOOOOOOOO((((1111))))            UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV ((((JJJJuuuullllyyyy 7777,,,, 1111999999991111))))             ZZZZOOOOOOOO((((1111))))
  203.  
  204.  
  205.  
  206.                on the number of generations of the file to maintain in
  207.                the archive.
  208.  
  209.           uuuu    Do an update of the archive.  A specified file is added
  210.                to the archive only if a copy of it is already in the
  211.                archive and the copy being added is newer than the copy
  212.                already in the archive.
  213.  
  214.           The following modifiers are specific to these commands.
  215.  
  216.           MMMM    Move files to archive.  This makes _z_o_o delete (unlink)
  217.                the original files after they have been added to the
  218.                archive.  Files are deleted after addition of all files
  219.                to the archive is complete and after any requested
  220.                packing of the archive has been done, and only if _z_o_o
  221.                detected no errors.
  222.  
  223.           nnnn    Add new files only.  A specified file is added only if
  224.                it isn't already in the archive.
  225.  
  226.           hhhh    Use the high performance compression algorithm. This
  227.                option may be used with either the add (a) or filter
  228.                (f) commands to gain extra compression at the expense
  229.                of using somewhat more processor time. Extracting files
  230.                compressed with the method is usually slightly faster
  231.                than those saved with the default method.
  232.  
  233.           PPPP    Pack archive after files have been added.
  234.  
  235.           uuuu    Applied to the aaaa command, this modifier makes it behave
  236.                identically to the uuuu command.
  237.  
  238.                The combination of the nnnn modifier with the uuuu modifier
  239.                or uuuu command causes addition of a file to the archive
  240.                either if the file is not already in the archive, _o_r if
  241.                the file is already in the archive but the archived
  242.                copy is older than the copy being added.
  243.  
  244.           ::::    Do not store directory names.  In the absence of this
  245.                modifier _z_o_o stores the full pathname of each archived
  246.                file.
  247.  
  248.           IIII    Read filenames to be archived from standard input. _Z_o_o
  249.                will read its standard input and assume that each line
  250.                of text contains a filename.  Under AmigaDOS and the
  251.                **IX family, the entire line is used.  Under MS-DOS and
  252.                VAX/VMS, _z_o_o assumes that the filename is terminated by
  253.                a blank, tab, or newline; thus it is permissible for
  254.                the line of text to contain more than one field
  255.                separated by white space, and only the first field will
  256.                be used.
  257.  
  258.  
  259.  
  260.  
  261.      Page 4                                           (printed 3/9/94)
  262.  
  263.  
  264.  
  265.  
  266.  
  267.  
  268.      ZZZZOOOOOOOO((((1111))))            UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV ((((JJJJuuuullllyyyy 7777,,,, 1111999999991111))))             ZZZZOOOOOOOO((((1111))))
  269.  
  270.  
  271.  
  272.                Under the **IX family of operating systems, _z_o_o can be
  273.                used as follows in a pipeline:
  274.  
  275.                     find . -print | _z_o_o aI sources
  276.  
  277.  
  278.  
  279.                If the IIII modifier is specified, no filenames may be
  280.                supplied on the command line itself.
  281.  
  282.           ++++,----  These modifiers take effect only if the aaaa command
  283.                results in the creation of a new archive.  ++++ causes any
  284.                newly-created archive to have generations enabled.  ----
  285.                is provided for symmetry and causes any newly-created
  286.                archive to have generations disabled;  this is also the
  287.                default if neither ++++ nor ---- is specified.
  288.  
  289.           Files are extracted from an archive with the command:
  290.  
  291.           _z_o_o {eeeexxxx}[ddddNNNNooooOOOOppppqqqqSSSS....////@@@@] archive [file] ...
  292.  
  293.           The eeee and xxxx commands are synonymous.  If no file was
  294.           specified, all files are extracted from the archive.
  295.  
  296.           The following modifiers are specific to the e and x
  297.           commands:
  298.  
  299.           NNNN    Do not save extracted data but report any errors
  300.                encountered.
  301.  
  302.           OOOO    Overwrite files.  Normally, if a file being extracted
  303.                would overwrite an already-existing file of the same
  304.                name, _z_o_o asks you if you really want to overwrite it.
  305.                You may answer the question with `y', which means yes,
  306.                overwrite; or `n', which means no, don't overwrite; or
  307.                `a', which means assume the answer is `y' for this and
  308.                all subsequent files.  The OOOO modifier makes _z_o_o assume
  309.                that files may always be overwritten.  Neither
  310.                answering the question affirmatively nor using OOOO alone
  311.                will cause read-only files to be overwritten.
  312.  
  313.                On **IX systems, however, doubling this modifier as OOOOOOOO
  314.                will force _z_o_o to unconditionally overwrite any read-
  315.                protected files with extracted files if it can do so.
  316.  
  317.                The OOOO,,,, NNNN,,,, and pppp modifiers are mutually exclusive.
  318.  
  319.           SSSS    Supersede newer files on disk with older extracted
  320.                files.  Unless this modifier is used, _z_o_o will not
  321.                overwrite a newer existing file with an older extracted
  322.                file.
  323.  
  324.  
  325.  
  326.  
  327.      Page 5                                           (printed 3/9/94)
  328.  
  329.  
  330.  
  331.  
  332.  
  333.  
  334.      ZZZZOOOOOOOO((((1111))))            UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV ((((JJJJuuuullllyyyy 7777,,,, 1111999999991111))))             ZZZZOOOOOOOO((((1111))))
  335.  
  336.  
  337.  
  338.           oooo    This is equivalent to the OOOO modifier if and only if it
  339.                is given at least twice.  It is otherwise ignored.
  340.  
  341.           pppp    Pipe extracted data to standard output.  Error messages
  342.                are piped to standard output as well.  However, if a
  343.                bad CRC is detected, an error message is sent both to
  344.                standard error and to standard output.
  345.  
  346.           ////    Extract to original pathname.  Any needed directories
  347.                must already exist.  In the absence of this modifier
  348.                all files are extracted into the current directory.  If
  349.                this modifier is doubled as ////////, required directories
  350.                need not exist and are created if necessary.
  351.  
  352.           The management of multiple generations of archived files is
  353.           done with the commands:
  354.  
  355.           zzzzoooooooo ggggllll[AAAAqqqq]{++++----====}nnnnuuuummmmbbbbeeeerrrr aaaarrrrcccchhhhiiiivvvveeee ffffiiiilllleeeessss ........
  356.           zzzzoooooooo ggggcccc[qqqq]{++++----====}nnnnuuuummmmbbbbeeeerrrr aaaarrrrcccchhhhiiiivvvveeee ffffiiiilllleeeessss ........
  357.           zzzzoooooooo ggggAAAA[qqqq]---- aaaarrrrcccchhhhiiiivvvveeee
  358.           zzzzoooooooo ggggAAAA[qqqq]++++ aaaarrrrcccchhhhiiiivvvveeee
  359.  
  360.           The first form, ggggllll, adjusts the generation limit of selected
  361.           files by the specified value.  If the form ====nnnn is used, where
  362.           n is a decimal number, this sets the generation limit to the
  363.           specified value.  If ++++ or ---- are used in placed of ==== the
  364.           effect is to increment or decrement the generation limit by
  365.           the specified value.  For example, the command
  366.  
  367.                zzzzoooooooo ggggllll====5555 xxxxyyyyzzzz ::::
  368.  
  369.  
  370.           sets the generation limit of each file in the archive
  371.           xxxxyyyyzzzz....zzzzoooooooo to a value of 5.  The command
  372.  
  373.                zzzzoooooooo ggggllll----3333 xxxxyyyyzzzz ::::
  374.  
  375.  
  376.           decrements the generation limit of each file in the archive
  377.           to 3 less than it currently is.
  378.  
  379.           If the AAAA modifier is used, the archive-wide generation limit
  380.           is adjusted instead.
  381.  
  382.           The number of generations of a file maintained in an archive
  383.           is limited by the file generation limit, or the archive
  384.           generation limit, whichever is lower.  As a special case, a
  385.           generation limit of 0 stands for no limit.  Thus the default
  386.           file generation limit of 0 and archive generation limit of 3
  387.           limits the number of generations of each file in a newly-
  388.           created archive to three.
  389.  
  390.  
  391.  
  392.  
  393.      Page 6                                           (printed 3/9/94)
  394.  
  395.  
  396.  
  397.  
  398.  
  399.  
  400.      ZZZZOOOOOOOO((((1111))))            UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV ((((JJJJuuuullllyyyy 7777,,,, 1111999999991111))))             ZZZZOOOOOOOO((((1111))))
  401.  
  402.  
  403.  
  404.           The generation limit specified should be in the range 0
  405.           through 15;  any higher numbers are interpreted modulo 16.
  406.  
  407.           The second form of the command, using ggggcccc, adjusts the
  408.           generation count of selected files.  Each file has a
  409.           generation count of 1 when it is first added to an archive.
  410.           Each time a file by the same name is added again to an
  411.           archive, it receives a generation count that is one higher
  412.           than the highest generation count of the archived copy of
  413.           the file.  The permissible range of generation counts is 1
  414.           through 65535.  If repeated manipulations of an archive
  415.           result in files having very high generation counts, they may
  416.           be set back to lower numbers with the ggggcccc command.  The
  417.           syntax of the command is analogous to the syntax of the ggggllll
  418.           command, except that the AAAA modifier is not applicable to the
  419.           ggggcccc command.
  420.  
  421.           The third form, ggggAAAA----, disables generations in an archive.
  422.           Generations are off when an archive is first created, but
  423.           may be enabled with the fourth form of the command, ggggAAAA++++.
  424.           When generations are disabled in an archive, _z_o_o will not
  425.           display generation numbers in archive listings or maintain
  426.           multiple generations.  Generations can be re-enabled at any
  427.           time, though manipulation of an archive with repeated
  428.           interspersed ggggAAAA---- and ggggAAAA++++ commands may result in an archive
  429.           whose behavior is not easily understandable.
  430.  
  431.           Archived files are listed with the command:
  432.  
  433.           _z_o_o {llllLLLLvvvvVVVV}[aaaaAAAAccccCCCCddddffffggggmmmmqqqqvvvvVVVV@@@@////1111++++----] archive[....zzzzoooooooo] [file] ...
  434.  
  435.           llll    Information presented includes the date and time of
  436.                each file, its original and current (compressed) sizes,
  437.                and the percentage size decrease due to compression
  438.                (labelled CF or compression factor).  If a file was
  439.                added to the archive in a different timezone, the
  440.                difference between timezones is shown in hours as a
  441.                signed number.  As an example, if the difference is
  442.                listed as +3, this means that the file was added to the
  443.                archive in a timezone that is 3 hours west of the
  444.                current timezone.  The file time listed is, however,
  445.                always the original timestamp of the archived file, as
  446.                observed by the user who archived the file, expressed
  447.                as that user's local time.  (Timezone information is
  448.                stored and displayed only if the underlying operating
  449.                system knows about timezones.)
  450.  
  451.                If no filename is supplied all files are listed except
  452.                deleted files.
  453.  
  454.                _Z_o_o selects which generation(s) of a file to list
  455.                according to the following algorithm.
  456.  
  457.  
  458.  
  459.      Page 7                                           (printed 3/9/94)
  460.  
  461.  
  462.  
  463.  
  464.  
  465.  
  466.      ZZZZOOOOOOOO((((1111))))            UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV ((((JJJJuuuullllyyyy 7777,,,, 1111999999991111))))             ZZZZOOOOOOOO((((1111))))
  467.  
  468.  
  469.  
  470.                If no filename is supplied, only the latest generation
  471.                of each file is listed.  If any filenames are
  472.                specified, and a generation is specified for an
  473.                argument, only the requested generation is listed.  If
  474.                a filename is specified ending with the generation
  475.                character (`:' or `;'), all generations of that file
  476.                are listed.  Thus a filename argument of the form zzzzoooooooo....cccc
  477.                will cause only the latest generation of _z_o_o._c to be
  478.                listed;  an argument of the form zzzzoooooooo....cccc::::4444 will cause
  479.                generation 4 of _z_o_o._c to be listed;  and an argument of
  480.                the form zzzzoooooooo....cccc:::: or zzzzoooooooo....cccc::::**** will cause all generations
  481.                of _z_o_o._c to be listed.
  482.  
  483.           LLLL    This is similar to the llll command except that all
  484.                supplied arguments must be archives and all non-deleted
  485.                generations of all files in each archive appear in the
  486.                listing.
  487.  
  488.                On **IX systems, on which the shell expands arguments,
  489.                if multiple archives are to be listed, the LLLL command
  490.                must be used.  On other systems (VAX/VMS, AmigaDOS,
  491.                MSDOS) on which wildcard expansion is done internally
  492.                by _z_o_o, wildcards may be used in the archive name, and
  493.                a multiple archive listing obtained, using the llll
  494.                command.
  495.  
  496.           vvvv    This causes any comment attached to the archive to be
  497.                listed in addition to the other information.
  498.  
  499.           VVVV    This causes any comment attached to the archive and
  500.                also any comment attached to each file to be listed.
  501.  
  502.                Both the VVVV and vvvv command characters can also be used as
  503.                modifiers to the llll and LLLL commands.
  504.  
  505.           In addition to the general modifiers described later, the
  506.           following modifiers can be applied to the archive list
  507.           commands.
  508.  
  509.           aaaa    This gives a single-line format containing both each
  510.                filename and the name of the archive, sorted by archive
  511.                name.  It is especially useful with the LLLL command,
  512.                since the result can be further sorted on any field to
  513.                give a master listing of the entire contents of a set
  514.                of archives.
  515.  
  516.           AAAA    This causes any comment attached to the archive to be
  517.                listed.
  518.  
  519.           gggg    This modifier causes file generation information to be
  520.                listed about the archive.  For each file listed, the
  521.                user-specified generation limit, if any, is listed.
  522.  
  523.  
  524.  
  525.      Page 8                                           (printed 3/9/94)
  526.  
  527.  
  528.  
  529.  
  530.  
  531.  
  532.      ZZZZOOOOOOOO((((1111))))            UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV ((((JJJJuuuullllyyyy 7777,,,, 1111999999991111))))             ZZZZOOOOOOOO((((1111))))
  533.  
  534.  
  535.  
  536.                For example, `3g' for a file means that the user wants
  537.                no more than three generations of the file to be kept.
  538.                In archives created by older versions of _z_o_o, the
  539.                listing will show `-g', meaning that no generation
  540.                information is kept and multiple generations of the
  541.                file are not being maintained.
  542.  
  543.                In addition to the generation information for each
  544.                file, the archive-wide generation limit, if any, is
  545.                shown at the end of the listing.  If generations have
  546.                been disabled by the user, this is so indicated, for
  547.                example:
  548.  
  549.                     Archive generation limit is 3 (generations off).
  550.  
  551.                For more information about generations see the
  552.                description of the gggg command.
  553.  
  554.           mmmm    This modifier is currently applicable to **IX systems
  555.                only.  It causes the mode bits (file protection code)
  556.                of each file to be listed as a three-digit octal
  557.                number.  Currently _z_o_o preserves only the lowest nine
  558.                mode bits.  Their meanings are as described in the **IX
  559.                documentation for the _c_h_m_o_d(_1) command.
  560.  
  561.           CCCC    This modifier causes the stored cyclic redundancy code
  562.                (CRC) for each archived file to be shown as a four-
  563.                digit hexadecimal number.
  564.  
  565.           1111    This forces one filename to be listed per line.  It is
  566.                most useful in combination with the ffff modifier.
  567.  
  568.           ////    This forces any directory name to be always listed,
  569.                even in fast columnized listings that do not normally
  570.                include any directory names.
  571.  
  572.           ++++,----  The ---- modifier causes trailing generation numbers to be
  573.                omitted from filenames.  The ++++ modifier causes the
  574.                trailing generation numbers to be shown, which is also
  575.                the default if neither ---- nor ++++ is specified.
  576.  
  577.           Files may be deleted and undeleted from an archive with the
  578.           following commands:
  579.  
  580.           _z_o_o {DDDDUUUU}[PPPPqqqq1111] archive file ...
  581.  
  582.           The DDDD command deletes the specified files and the UUUU command
  583.           undeletes the specified files.  The 1111 modifier (the digit
  584.           one, not the letter ell) forces deletion or undeletion of at
  585.           most one file.  If multiple instances of the same file exist
  586.           in an archive, use of the 1111 modifier may allow selective
  587.           extraction of one of these.
  588.  
  589.  
  590.  
  591.      Page 9                                           (printed 3/9/94)
  592.  
  593.  
  594.  
  595.  
  596.  
  597.  
  598.      ZZZZOOOOOOOO((((1111))))            UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV ((((JJJJuuuullllyyyy 7777,,,, 1111999999991111))))             ZZZZOOOOOOOO((((1111))))
  599.  
  600.  
  601.  
  602.           Comments may be added to an archive with the command:
  603.  
  604.           _z_o_o cccc[AAAA] archive
  605.  
  606.           Without the modifier AAAA, this behaves identically to the
  607.           ----ccccoooommmmmmmmeeeennnntttt command.  With the modifier AAAA, the command serves
  608.           to add or update the comment attached to the archive as a
  609.           whole.  This comment may be listed with the llllAAAA,,,, LLLLAAAA,,,, vvvv,,,, aaaannnndddd VVVV
  610.           commands.  Applying the ccccAAAA command to an archive that was
  611.           created with an older version of _z_o_o will result in an error
  612.           message requesting that the user first pack the archive with
  613.           the PPPP command.  This reorganizes the archive and creates
  614.           space for the archive comment.
  615.  
  616.           The timestamp of an archive may be adjusted with the
  617.           command:
  618.  
  619.           _z_o_o TTTT[qqqq] archive
  620.  
  621.           _Z_o_o normally attempts to maintain the timestamp of an
  622.           archive to reflect the age of the newest file stored in it.
  623.           Should the timestamp ever be incorrect it can be fixed with
  624.           the TTTT command.
  625.  
  626.           An archive may be packed with the command:
  627.  
  628.           _z_o_o PPPP[EEEEPPPPqqqq] archive
  629.  
  630.           If the backup copy of the archive already exists, _z_o_o will
  631.           refuse to pack the archive unless the PPPP modifier is also
  632.           given.  The EEEE modifier causes _z_o_o not to save a backup copy
  633.           of the original archive after packing.  A unique temporary
  634.           file in the current directory is used to initially hold the
  635.           packed archive.  This file will be left behind if packing is
  636.           interrupted or if for some reason this file cannot be
  637.           renamed to the name of the original archive when packing is
  638.           complete.
  639.  
  640.           Packing removes any garbage data appended to an archive
  641.           because of Xmodem file transfer and also recovers any wasted
  642.           space remaining in an archive that has been frequently
  643.           updated or in which comments were replaced.  Packing also
  644.           updates the format of any archive that was created by an
  645.           older version of _z_o_o so that newer features (e.g. archive-
  646.           wide generation limit, archive comment) become fully
  647.           available.
  648.  
  649.           _Z_o_o can act as a pure compression or uncompression filter,
  650.           reading from standard input and writing to standard output.
  651.           This is achieved with the command:
  652.  
  653.           _z_o_o ffff{ccccuuuu}[[[[h
  654.  
  655.  
  656.  
  657.      Page 10                                          (printed 3/9/94)
  658.  
  659.  
  660.  
  661.  
  662.  
  663.  
  664.      ZZZZOOOOOOOO((((1111))))            UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV ((((JJJJuuuullllyyyy 7777,,,, 1111999999991111))))             ZZZZOOOOOOOO((((1111))))
  665.  
  666.  
  667.  
  668.           where cccc specifies compression, uuuu specifies uncompression,
  669.           and hhhh used in addition requests the high-performance
  670.           compression be used.  A CRC value is used to check the
  671.           integrity of the data.  The compressed data stream has no
  672.           internal archive structure and contains multiple files only
  673.           if the input data stream was already structured, as might be
  674.           obtained, for example, from _t_a_r or _c_p_i_o.
  675.  
  676.            Modem transfers can be speeded up with these commands:
  677.  
  678.                     _z_o_o ffffcccc < file | _s_z ... _r_z | _z_o_o ffffuuuu > file
  679.  
  680.  
  681.  
  682.           GGGGeeeennnneeeerrrraaaallll mmmmooooddddiiiiffffiiiieeeerrrrssss
  683.  
  684.           The following modifiers are applicable to several commands:
  685.  
  686.           cccc    Applied to the aaaa and uuuu commands, this causes the user
  687.                to be prompted for a comment for each file added to the
  688.                archive.  If the file being added has replaced, or is a
  689.                newer generation of, a file already in the archive, any
  690.                comment attached to that file is shown to the user and
  691.                becomes attached to the newly-added file unless the
  692.                user changes it.  Possible user responses are as
  693.                described for the ----ccccoooommmmmmmmeeeennnntttt command.  Applied to the
  694.                archive list command llll, the cccc modifier causes the
  695.                listing of any comments attached to archived files.
  696.  
  697.            ....   In conjunction with //// or //////// this modifier causes any
  698.                extracted pathname beginning with `/' to be interpreted
  699.                relative to the current directory, resulting in the
  700.                possible creation of a subtree rooted at the current
  701.                directory.  In conjunction with the command PPPP the ....
  702.                modifier causes the packed archive to be created in the
  703.                current directory.  This is intended to allow users
  704.                with limited disk space but multiple disk drives to
  705.                pack large archives.
  706.  
  707.           dddd    Most commands that act on an archive act only on files
  708.                that are not deleted.  The dddd modifier makes commands
  709.                act on both normal and deleted files.  If doubled as
  710.                dddddddd, this modifier forces selection only of deleted
  711.                files.
  712.  
  713.           ffff    Applied to the aaaa and uuuu commands, the ffff modifier causes
  714.                fast archiving by adding files without compression.
  715.                Applied to llll it causes a fast listing of files in a
  716.                multicolumn format.
  717.  
  718.           qqqq    Be quiet.  Normally _z_o_o lists the name of each file and
  719.                what action it is performing.  The qqqq modifier
  720.  
  721.  
  722.  
  723.      Page 11                                          (printed 3/9/94)
  724.  
  725.  
  726.  
  727.  
  728.  
  729.  
  730.      ZZZZOOOOOOOO((((1111))))            UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV ((((JJJJuuuullllyyyy 7777,,,, 1111999999991111))))             ZZZZOOOOOOOO((((1111))))
  731.  
  732.  
  733.  
  734.                suppresses this.  When files are being extracted to
  735.                standard output, the qqqq modifier suppresses the header
  736.                preceding each file.  When archive contents are being
  737.                listed, this modifier suppresses any header and
  738.                trailer.  When a fast columnized listing is being
  739.                obtained, this modifier causes all output to be
  740.                combined into a single set of filenames for all
  741.                archives being listed.
  742.  
  743.                When doubled as qqqqqqqq, this modifier suppresses WARNING
  744.                messages, and when tripled as qqqqqqqqqqqq, ERROR messages are
  745.                suppressed too.  FATAL error messages are never
  746.                suppressed.
  747.  
  748.           RRRReeeeccccoooovvvveeeerrrriiiinnnngggg ddddaaaattttaaaa ffffrrrroooommmm ddddaaaammmmaaaaggggeeeedddd aaaarrrrcccchhhhiiiivvvveeeessss
  749.  
  750.           The @@@@ modifier allows the user to specify the exact position
  751.           in an archive where _z_o_o should extract a file from, allowing
  752.           damaged portions of an archive to be skipped.  This modifier
  753.           must be immediately followed by a decimal integer without
  754.           intervening spaces, and possibly by a comma and another
  755.           decimal integer, giving a command of the form llll@@@@mmmm or llll@@@@mmmm,,,,nnnn
  756.           (to list archive contents) or xxxx@@@@mmmm or xxxx@@@@mmmm,,,,nnnn (to extract files
  757.           from an archive).  Listing or extraction begin at position mmmm
  758.           in the archive.  The value of mmmm must be the position within
  759.           the archive of an undamaged directory entry.  This position
  760.           is usually obtained from _f_i_z(_1) version 2.0 or later.
  761.  
  762.           If damage to the archive has shortened or lengthened it, all
  763.           positions within the archive may be changed by some constant
  764.           amount.  To compensate for this, the value of nnnn may be
  765.           specified.  This value is also usually obtained from _f_i_z(_1).
  766.           It should be the position in the archive of the file data
  767.           corresponding to the directory entry that has been specified
  768.           with mmmm.  Thus if the command xxxx@@@@444455556666,,,,555577775555 is given, it will
  769.           cause the first 456 bytes of the archive to be skipped and
  770.           extraction to begin at offset 456;  in addition, _z_o_o will
  771.           attempt to extract the file data from position 575 in the
  772.           archive instead of the value that is found in the directory
  773.           entry read from the archive.  For example, here is some of
  774.           the output of _f_i_z when it acts on a damaged _z_o_o archive:
  775.  
  776.           ****************
  777.               2526: DIR  [changes] ==>   95
  778.               2587: DATA
  779.           ****************
  780.               3909: DIR  [copyrite] ==> 1478
  781.               3970: DATA
  782.               4769: DATA
  783.           ****************
  784.  
  785.           In such output, DDDDIIIIRRRR indicates where _f_i_z found a directory
  786.  
  787.  
  788.  
  789.      Page 12                                          (printed 3/9/94)
  790.  
  791.  
  792.  
  793.  
  794.  
  795.  
  796.      ZZZZOOOOOOOO((((1111))))            UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV ((((JJJJuuuullllyyyy 7777,,,, 1111999999991111))))             ZZZZOOOOOOOO((((1111))))
  797.  
  798.  
  799.  
  800.           entry in the archive, and DDDDAAAATTTTAAAA indicates where _f_i_z found
  801.           file data in the archive.  Filenames located by _f_i_z are
  802.           enclosed in square brackets, and the notation "==>   95"
  803.           indicates that the directory entry found by _f_i_z at position
  804.           2526 has a file data pointer to position 95.  (This is
  805.           clearly wrong, since file data always occur in an archive
  806.           _a_f_t_e_r their directory entry.)  In actuality, _f_i_z found file
  807.           data at positions 2587, 3970, and 4769.  Since _f_i_z found
  808.           only two directory entries, and each directory entry
  809.           corresponds to one file, one of the file data positions is
  810.           an artifact.
  811.  
  812.           In this case, commands to try giving to _z_o_o might be
  813.           xxxx@@@@2222555522226666,,,,2222555588887777 (extract beginning at position 2526, and get
  814.           file data from position 2587), xxxx@@@@3333000099990000,,,,3333999977770000 (extract at 3090,
  815.           get data from 3970) and xxxx@@@@3333999900009999,,,,4444777766669999 (extract at 3909, get
  816.           data from 4769).  Once a correctly-matched directory
  817.           entry/file data pair is found, _z_o_o will in most cases
  818.           synchronize with and correctly extract all files
  819.           subsequently found in the archive.  Trial and error should
  820.           allow all undamaged files to be extracted.  Also note that
  821.           self-extracting archives created using _s_e_z (the Self-
  822.           Extracting _Z_o_o utility for MS-DOS), which are normally
  823.           executed on an MS-DOS system for extraction, can be
  824.           extracted on non-MSDOS systems using _z_o_o'_s damaged-archive
  825.           recovery method using the @@@@ modifier.
  826.  
  827.           WWWWiiiillllddddccccaaaarrrrdddd hhhhaaaannnnddddlllliiiinnnngggg
  828.  
  829.           Under the **IX family of operating systems, the shell
  830.           normally expands wildcards to a list of matching files.
  831.           Wildcards that are meant to match files within an archive
  832.           must therefore be escaped or quoted.  When selecting files
  833.           to be added to an archive, wildcard conventions are as
  834.           defined for the shell.  When selecting files from within an
  835.           archive, wildcard handling is done by _z_o_o as described
  836.           below.
  837.  
  838.           Under MS-DOS and AmigaDOS, quoting of wildcards is not
  839.           needed.  All wildcard expansion of filenames is done by _z_o_o,
  840.           and wildcards inside directory names are expanded only when
  841.           listing or extracting files but not when adding them.
  842.  
  843.           The wildcard syntax interpreted by _z_o_o is limited to the
  844.           following characters.
  845.  
  846.           ****    Matches any sequence of zero or more characters.
  847.  
  848.           ????    Matches any single character.
  849.  
  850.                Arbitrary combinations of **** and ???? are allowed.
  851.  
  852.  
  853.  
  854.  
  855.      Page 13                                          (printed 3/9/94)
  856.  
  857.  
  858.  
  859.  
  860.  
  861.  
  862.      ZZZZOOOOOOOO((((1111))))            UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV ((((JJJJuuuullllyyyy 7777,,,, 1111999999991111))))             ZZZZOOOOOOOO((((1111))))
  863.  
  864.  
  865.  
  866.           ////    If a supplied pattern contains a slash anywhere in it,
  867.                then the slash separating any directory prefix from the
  868.                filename must be matched explicitly.  If a supplied
  869.                pattern contains no slashes, the match is selective
  870.                only on the filename.
  871.  
  872.           cccc----cccc  Two characters separated by a hyphen specify a
  873.                character range.  All filenames beginning with those
  874.                characters will match.  The character range is
  875.                meaningful only by itself or preceded by a directory
  876.                name.  It is not specially interpreted if it is part of
  877.                a filename.
  878.  
  879.           :::: aaaannnndddd ;;;;
  880.                These characters are used to separate a filename from a
  881.                generation number and are used when selecting specific
  882.                generations of archived files.  If no generation
  883.                character is used, the filename specified matches only
  884.                the latest generation of the file.  If the generation
  885.                character is specified, the filename and the generation
  886.                are matched independently by _z_o_o'_s wildcard mechanism.
  887.                If no generation is specified following the :::: or ;;;;
  888.                character, all generations of that file will match.  As
  889.                a special case, a generation number of 0000 matches only
  890.                the latest generation of a file, while ^^^^0000 matches all
  891.                generations of a file except the latest one.  If no
  892.                filename is specified preceding the generation
  893.                character, all filenames will match.  As a corollary,
  894.                the generation character by itself matches all
  895.                generations of all files.
  896.  
  897.           MS-DOS users should note that _z_o_o does not treat the dot as
  898.           a special character, and it does not ignore characters
  899.           following an asterisk.  Thus **** matches all filenames; ****....****
  900.           matches filenames containing a dot; ****____**** matches filenames
  901.           containing an underscore;  and ****zzzz matches all filenames that
  902.           end with the character zzzz, whether or not they contain a dot.
  903.  
  904.           UUUUssssaaaaggggeeee hhhhiiiinnnnttttssss
  905.  
  906.           The Novice command set in _z_o_o is meant to provide an
  907.           interface with functionality and format that will be
  908.           familiar to users of other similar archive utilities.  In
  909.           keeping with this objective, the Novice commands do not
  910.           maintain or use any subdirectory information or allow the
  911.           use of _z_o_o'_s ability to maintain multiple generations of
  912.           files.  For this reason, users should switch to exclusively
  913.           using the Expert commands as soon as possible.
  914.  
  915.           Although the Expert command set is quite large, it should be
  916.           noted that in almost every case, all legal modifiers for a
  917.           command are fully orthogonal.  This means that the user can
  918.  
  919.  
  920.  
  921.      Page 14                                          (printed 3/9/94)
  922.  
  923.  
  924.  
  925.  
  926.  
  927.  
  928.      ZZZZOOOOOOOO((((1111))))            UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV ((((JJJJuuuullllyyyy 7777,,,, 1111999999991111))))             ZZZZOOOOOOOO((((1111))))
  929.  
  930.  
  931.  
  932.           select any combination of modifiers, and when they act
  933.           together, they will have the intuitively obvious effect.
  934.           Thus the user need only memorize what each modifier does,
  935.           and then can combine them as needed without much further
  936.           thought.
  937.  
  938.           For example, consider the aaaa command which is used to add
  939.           files to an archive.  By itself, it simply adds the
  940.           specified files.  To cause only already-archived files to be
  941.           updated if their disk copies have been modified, it is only
  942.           necessary to add the uuuu modifier, making the command aaaauuuu.  To
  943.           cause only new files (i.e., files not already in the
  944.           archive) to be added, the nnnn modifier is used to create the
  945.           command aaaannnn.  To cause _b_o_t_h already-archived files to be
  946.           updated and new files to be added, the uuuu and nnnn modifiers can
  947.           be used together, giving the command aaaauuuunnnn.  Since the order
  948.           of modifiers is not significant, the command could also be
  949.           aaaannnnuuuu.
  950.  
  951.           Further, the cccc modifier can be used to cause _z_o_o to prompt
  952.           the user for a comment to attach to each file added.  And
  953.           the ffff modifier can cause fast addition (addition without
  954.           compression).  It should be obvious then that the command
  955.           aaaauuuunnnnccccffff will cause _z_o_o to update already-archived files, add
  956.           new files, prompt the user for comments, and do the addition
  957.           of files without any compression.  Furthermore, if the user
  958.           wishes to move files to the archive, i.e., delete the disk
  959.           copy of each file after it is added to the archive, it is
  960.           only necessary to add the MMMM modifier to the command, so it
  961.           becomes aaaauuuunnnnccccffffMMMM.  And if the user also wishes to cause the
  962.           archive to be packed as part of the command, thus recovering
  963.           space from any files that are replaced, the command can be
  964.           modified to aaaauuuunnnnccccffffMMMMPPPP by adding the PPPP modifier that causes
  965.           packing.
  966.  
  967.           Similarly, the archive listing commands can be built up by
  968.           combining modifiers.  The basic command to list the contents
  969.           of an archive is llll.  If the user wants a fast columnized
  970.           listing, the ffff modifier can be added to give the llllffff command.
  971.           Since this listing will have a header giving the archive
  972.           name and a trailer summarizing interesting information about
  973.           the archive, such as the number of deleted files, the user
  974.           may wish to "quieten" the listing by suppressing these;  the
  975.           relevant modifier is qqqq, which when added to the command
  976.           gives llllffffqqqq.  If the user wishes to see the **IX mode (file
  977.           protection) bits, and also information about multiple
  978.           generations, the modifiers mmmm (show mode bits) and gggg (show
  979.           generation information) can be added, giving the command
  980.           llllffffqqqqmmmmgggg.  If the user also wishes to see an attached archive
  981.           comment, the modifier AAAA (for archive) will serve.  Thus the
  982.           command llllffffqqqqmmmmggggAAAA will give a fast columnized listing of the
  983.           archive, suppressing any header and trailer, showing mode
  984.  
  985.  
  986.  
  987.      Page 15                                          (printed 3/9/94)
  988.  
  989.  
  990.  
  991.  
  992.  
  993.  
  994.      ZZZZOOOOOOOO((((1111))))            UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV ((((JJJJuuuullllyyyy 7777,,,, 1111999999991111))))             ZZZZOOOOOOOO((((1111))))
  995.  
  996.  
  997.  
  998.           bits and generation information, and showing any comment
  999.           attached to the archive as a whole.  If in addition
  1000.           individual comments attached to files are also needed,
  1001.           simply append the cccc modifier to the command, making it
  1002.           llllffffqqqqmmmmggggAAAAcccc.  The above command will not show any deleted files,
  1003.           however;  to see them, use the dddd modifier, making the
  1004.           command llllffffqqqqmmmmggggAAAAccccdddd (or double it as in llllffffqqqqmmmmggggAAAAccccdddddddd if _o_n_l_y the
  1005.           deleted files are to be listed).  And if the user also
  1006.           wishes to see the CRC value for each file being listed, the
  1007.           modifier CCCC will do this, as in the command llllffffqqqqmmmmggggAAAAccccddddCCCC, which
  1008.           gives a fast columnized listing of all files, including
  1009.           deleted files, showing any archive comment and file
  1010.           comments, and file protection codes and generation
  1011.           information, as well as the CRC value of each file.
  1012.  
  1013.           Note that the above command llllffffqqqqmmmmggggAAAAccccddddCCCC could also be
  1014.           abbreviated to VVVVffffqqqqmmmmggggddddCCCC because the command VVVV is shorthand
  1015.           for llllccccAAAA (archive listing with all comments shown).
  1016.           Similarly the command vvvv is shorthand for llllAAAA (archive listing
  1017.           with archive comment shown).  Both VVVV and vvvv can be used as
  1018.           modifiers to any of the other archive listing commands.
  1019.  
  1020.           GGGGeeeennnneeeerrrraaaattttiiiioooonnnnssss
  1021.  
  1022.           By default, _z_o_o assumes that only the latest generation of a
  1023.           specified file is needed.  If generations other than the
  1024.           latest one need to be selected, this may be done by
  1025.           specifying them in the filename.  For example, the name
  1026.           ssssttttddddiiiioooo....hhhh would normally refer to the latest generation of the
  1027.           file _s_t_d_i_o._h stored in a _z_o_o archive.  To get an archive
  1028.           listing showing all generations of _s_t_d_i_o._h in the archive,
  1029.           the specification ssssttttddddiiiioooo....hhhh::::**** could be used (enclosed in
  1030.           single quotes if necessary to protect the wildcard character
  1031.           **** from the shell).  Also, ssssttttddddiiiioooo....hhhh::::0000 selects only the latest
  1032.           generation of _s_t_d_i_o._h, while ssssttttddddiiiioooo....hhhh::::^^^^0000 selects all
  1033.           generations except the latest one.  The :::: character here
  1034.           separates the filename from the generation number, and the
  1035.           character **** is a wildcard that matches all possible
  1036.           generations.  For convenience, the generation itself may be
  1037.           left out, so that the name ssssttttddddiiiioooo....hhhh:::: (with the :::: but without
  1038.           a generation number or a wildcard) matches all generations
  1039.           exactly as ssssttttddddiiiioooo....hhhh::::**** does.
  1040.  
  1041.           If a generation is specified but no filename is present, as
  1042.           in ::::5555, ::::****, or just ::::, all filenames of the specified
  1043.           generation will be selected.  Thus ::::5555 selects generation 5
  1044.           of each file, and ::::**** and :::: select all generations of all
  1045.           files.
  1046.  
  1047.           It is important to note that _z_o_o'_s idea of the latest
  1048.           generation of a file is not based upon searching the entire
  1049.           archive.  Instead, whenever _z_o_o adds a file to an archive,
  1050.  
  1051.  
  1052.  
  1053.      Page 16                                          (printed 3/9/94)
  1054.  
  1055.  
  1056.  
  1057.  
  1058.  
  1059.  
  1060.      ZZZZOOOOOOOO((((1111))))            UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV ((((JJJJuuuullllyyyy 7777,,,, 1111999999991111))))             ZZZZOOOOOOOO((((1111))))
  1061.  
  1062.  
  1063.  
  1064.           it is marked as being the latest generation.  Thus, if the
  1065.           latest generation of a file is deleted, then _n_o generation
  1066.           of that file is considered the latest any more.  This can be
  1067.           surprising to the user.  For example, if an archive already
  1068.           contains the file _s_t_d_i_o._h:_5 and a new copy is added,
  1069.           appearing in the archive listing as _s_t_d_i_o._h:_6, and then
  1070.           _s_t_d_i_o._h:_6 is deleted, the remaining copy _s_t_d_i_o._h:_5 will no
  1071.           longer be considered to be the latest generation, and the
  1072.           file _s_t_d_i_o._h:_5, even if undeleted, will no longer appear in
  1073.           an archive listing unless generation 5 (or every generation)
  1074.           is specifically requested.  This behavior will likely be
  1075.           improved in future releases of _z_o_o.
  1076.  
  1077.      FFFFIIIILLLLEEEESSSS
  1078.           xXXXXXX - temporary file used during packing
  1079.           archive_name.bbbbaaaakkkk - backup of archive
  1080.  
  1081.      SSSSEEEEEEEE AAAALLLLSSSSOOOO
  1082.           compress(1), fiz(1)
  1083.  
  1084.      BBBBUUUUGGGGSSSS
  1085.           When files are being added to an archive on a non-MS-DOS
  1086.           system, it is possible for _z_o_o to fail to detect a full disk
  1087.           and hence create an invalid archive.  This bug will be fixed
  1088.           in a future release.
  1089.  
  1090.           Files with generation counts that wrap around from 65535 to
  1091.           1 are not currently handled correctly.  If a file's
  1092.           generation count reaches a value close to 65535, it should
  1093.           be manually set back down to a low number.  This may be
  1094.           easily done with a command such as ggggcccc----66665555000000000000, which subtracts
  1095.           65000 from the generation count of each specified file.
  1096.           This problem will be fixed in a future release.
  1097.  
  1098.           Although _z_o_o on **IX systems preserves the lowest nine mode
  1099.           bits of regular files, it does not currently do the same for
  1100.           directories.
  1101.  
  1102.           Currently _z_o_o'_s handling of the characters :::: and ;;;; in
  1103.           filenames is not robust, because it interprets these to
  1104.           separate a filename from a generation number.  A quoting
  1105.           mechanism will eventually be implemented.
  1106.  
  1107.           Standard input cannot be archived nor can a created archive
  1108.           be sent to standard output.  Spurious error messages may
  1109.           appear if the filename of an archive is too long.
  1110.  
  1111.           Since _z_o_o never archives any file with the same name as the
  1112.           archive or its backup (regardless of any path prefixes),
  1113.           care should be taken to make sure that a file to be archived
  1114.           does not coincidentally have the same name as the archive it
  1115.           is being added to.  It usually suffices to make sure that no
  1116.  
  1117.  
  1118.  
  1119.      Page 17                                          (printed 3/9/94)
  1120.  
  1121.  
  1122.  
  1123.  
  1124.  
  1125.  
  1126.      ZZZZOOOOOOOO((((1111))))            UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV ((((JJJJuuuullllyyyy 7777,,,, 1111999999991111))))             ZZZZOOOOOOOO((((1111))))
  1127.  
  1128.  
  1129.  
  1130.           file being archived is itself a _z_o_o archive.  (Previous
  1131.           versions of _z_o_o sometimes tried to add an archive to itself.
  1132.           This bug now seems to be fixed.)
  1133.  
  1134.           Only regular files are archived; devices and empty
  1135.           directories are not.  Support for archiving empty
  1136.           directories and for preserving directory attributes is
  1137.           planned for the near future.
  1138.  
  1139.           Early versions of MS-DOS have a bug that prevents "." from
  1140.           referring to the root directory;  this leads to anomalous
  1141.           results if the extraction of paths beginning with a dot is
  1142.           attempted.
  1143.  
  1144.           VAX/VMS destroys case information unless arguments are
  1145.           enclosed in double quotes.  For this reason if a command
  1146.           given to _z_o_o on a VAX/VMS system includes any uppercase
  1147.           characters, it must be enclosed in double quotes.  Under
  1148.           VAX/VMS, _z_o_o does not currently restore file timestamps;
  1149.           this will be fixed as soon as I figure out RMS extended
  1150.           attribute blocks, or DEC supplies a utime() function,
  1151.           whichever occurs first.  Other VMS bugs, related to file
  1152.           structures, can often be overcome by using the program
  1153.           _b_i_l_f._c that is supplied with _z_o_o.
  1154.  
  1155.           It is not currently possible to create a _z_o_o archive
  1156.           containing all _z_o_o archives that do not contain themselves.
  1157.  
  1158.      DDDDIIIIAAAAGGGGNNNNOOOOSSSSTTTTIIIICCCCSSSS
  1159.           Error messages are intended to be self-explanatory and are
  1160.           divided into three categories.  WARNINGS are intended to
  1161.           inform the user of an unusual situation, such as a CRC error
  1162.           during extraction, or ----ffffrrrreeeesssshhhheeeennnning of an archive containing a
  1163.           file newer than one specified on the command line.  ERRORS
  1164.           are fatal to one file, but execution continues with the next
  1165.           file if any.  FATAL errors cause execution to be aborted.
  1166.           The occurrence of any of these causes an exit status of 1.
  1167.           Normal termination without any errors gives an exit status
  1168.           of 0.  (Under VAX/VMS, however, to avoid an annoying
  1169.           message, _z_o_o always exits with an error code of 1.)
  1170.  
  1171.      CCCCOOOOMMMMPPPPAAAATTTTIIIIBBBBIIIILLLLIIIITTTTYYYY
  1172.           All versions of _z_o_o on all systems are required to create
  1173.           archives that can be extracted and listed with all versions
  1174.           of _z_o_o on all systems, regardless of filename and directory
  1175.           syntax or archive structure;  furthermore, any version of
  1176.           _z_o_o must be able to fully manipulate all archives created by
  1177.           all lower-numbered versions of _z_o_o on all systems.  So far
  1178.           as I can tell, this upward compatibility (all manipulations)
  1179.           and downward compatiblity (ability to extract and list) is
  1180.           maintained by _z_o_o versions up to 2.01.  Version 2.1 adds the
  1181.           incompatibility that if high-performance compression is
  1182.  
  1183.  
  1184.  
  1185.      Page 18                                          (printed 3/9/94)
  1186.  
  1187.  
  1188.  
  1189.  
  1190.  
  1191.  
  1192.      ZZZZOOOOOOOO((((1111))))            UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV ((((JJJJuuuullllyyyy 7777,,,, 1111999999991111))))             ZZZZOOOOOOOO((((1111))))
  1193.  
  1194.  
  1195.  
  1196.           used, earlier versions cannot extract files compressed with
  1197.           version 2.1.  This is the only incompatibility that is
  1198.           permissible.  You are forbidden, with the force of copyright
  1199.           law, to create from the _z_o_o source code any derivative work
  1200.           that violates this compatibility goal, whether knowingly or
  1201.           through negligence.  If any violation of this compatibility
  1202.           goal is observed, this should be considered a serious
  1203.           problem and reported to me.
  1204.  
  1205.      CCCCHHHHAAAANNNNGGGGEEEESSSS
  1206.           Here is a list of changes occurring from version 1.50 to
  1207.           version 2.01.  In parentheses is given the version in which
  1208.           each change occurred.
  1209.  
  1210.           -    (1.71) New modifiers to the list commands permit
  1211.                optional suppression of header and trailer information,
  1212.                inclusion of directory names in columnized listings,
  1213.                and fast one-column listings.
  1214.  
  1215.           -    (1.71) Timezones are handled.
  1216.  
  1217.           -    (1.71) A bug was fixed that had made it impossible to
  1218.                individually update comments for a file whose name did
  1219.                not correspond to MS-DOS format.
  1220.  
  1221.           -    (1.71) A change was made that now permits use of the
  1222.                shared library on the **IX PC.
  1223.  
  1224.           -    (1.71) VAX/VMS is now supported reasonably well.
  1225.  
  1226.           -    (2.00) A comment may now be attached to the archive
  1227.                itself.
  1228.  
  1229.           -    (2.00) The OOOOOOOO option allows forced overwriting of
  1230.                read-only files.
  1231.  
  1232.           -    (2.00) _Z_o_o will no longer extract a file if a newer
  1233.                copy already exists on disk;  the SSSS option will
  1234.                override this.
  1235.  
  1236.           -    (2.00) File attributes are preserved for **IX systems.
  1237.  
  1238.           -    (2.00) Multiple generations of the same file are
  1239.                supported.
  1240.  
  1241.           -    (2.00) _Z_o_o will now act as a compression or
  1242.                decompression filter on a stream of data and will use a
  1243.                CRC value to check the integrity of a data stream that
  1244.                is uncompressed.
  1245.  
  1246.           -    (2.00) A bug was fixed that caused removal of a
  1247.                directory link if files were moved to an archive by the
  1248.  
  1249.  
  1250.  
  1251.      Page 19                                          (printed 3/9/94)
  1252.  
  1253.  
  1254.  
  1255.  
  1256.  
  1257.  
  1258.      ZZZZOOOOOOOO((((1111))))            UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV ((((JJJJuuuullllyyyy 7777,,,, 1111999999991111))))             ZZZZOOOOOOOO((((1111))))
  1259.  
  1260.  
  1261.  
  1262.                superuser on a **IX system.
  1263.  
  1264.           -    (2.00) The data recovery modifier @@@@ was greatly
  1265.                enhanced.  Self-extracting archives created for MS-DOS
  1266.                systems can now be extracted by _z_o_o on any system with
  1267.                help from _f_i_z(_1).
  1268.  
  1269.           -    (2.01) A bug was fixed that had caused the first
  1270.                generation of a file to sometimes unexpectedly show up
  1271.                in archive listings.
  1272.  
  1273.           -    (2.01) A bug was fixed that had caused the MS-DOS
  1274.                version to silently skip files that could not be
  1275.                extracted because of insufficient disk space.
  1276.  
  1277.           -    (2.01) A bug was fixed that had sometimes made it
  1278.                impossible to selectively extract a file by specifying
  1279.                its name, even though all files could be extracted from
  1280.                the archive by not specifying any filenames.  This
  1281.                occurred when a file had been archived on a longer-
  1282.                filename system (e.g. AmigaDOS) and extraction was
  1283.                attempted on a shorter-filename system (e.g. MS-DOS).
  1284.  
  1285.           -    (2.01) A change was made that will make zoo preserve
  1286.                the mode (file protection) of a zoo archive when it is
  1287.                packed.  This is effective only if zoo is compiled to
  1288.                preserve and restore file attributes.  Currently this
  1289.                is so only for **IX systems.
  1290.  
  1291.           -    (2.01) A bug was fixed that had caused an update of an
  1292.                archive to not always add all newer files.
  1293.  
  1294.           -    (2.01) Blanks around equal signs in commands given to
  1295.                "make" were removed from the mk* scripts for better
  1296.                compatiblity with more **IX implementations including
  1297.                Sun's.
  1298.  
  1299.           -    (2.1) Compression is now greatly improved if the "h"
  1300.                option is used.
  1301.  
  1302.           -    (2.1) The default behavior is to preserve full
  1303.                pathnames during extraction.
  1304.  
  1305.           -    (2.1) On some systems, extraction of files using the
  1306.                older (default) compression method is greatly speeded
  1307.                up.
  1308.  
  1309.           -    (2.1) Extended multiscreen help is available.
  1310.  
  1311.           -    (2.1) Memory allocation is improved, so that the MS-DOS
  1312.                version will not prematurely abort when updating a
  1313.                large archive.
  1314.  
  1315.  
  1316.  
  1317.      Page 20                                          (printed 3/9/94)
  1318.  
  1319.  
  1320.  
  1321.  
  1322.  
  1323.  
  1324.      ZZZZOOOOOOOO((((1111))))            UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV ((((JJJJuuuullllyyyy 7777,,,, 1111999999991111))))             ZZZZOOOOOOOO((((1111))))
  1325.  
  1326.  
  1327.  
  1328.           -    (2.1) The VAX/VMS version preserves file timestamps
  1329.                during extraction.
  1330.  
  1331.           -    (2.1) The default archive-wide generation limit, when
  1332.                generations are enabled, is 3.
  1333.  
  1334.      FFFFUUUUTTTTUUUURRRREEEE DDDDIIIIRRRREEEECCCCTTTTIIIIOOOONNNNSSSS
  1335.           A revised version of _z_o_o is in the works that will be able
  1336.           to write newly-created archives to standard output and will
  1337.           support multivolume archives.  It will be upward and
  1338.           downward compatible with this version of _z_o_o.
  1339.  
  1340.      AAAACCCCKKKKNNNNOOOOWWWWLLLLEEEEDDDDGGGGEEEEMMMMEEEENNNNTTTTSSSS
  1341.           The _z_o_o archiver was initially developed using Microsoft C
  1342.           3.0 on a PC clone manufactured by Toshiba of Japan and
  1343.           almost sold by Xerox.  Availability of the following systems
  1344.           was helpful in achieving portability: Paul Homchick's Compaq
  1345.           running Microport System V/AT;  The Eskimo BBS somewhere in
  1346.           Oregon running Xenix/68000; Greg Laskin's system 'gryphon'
  1347.           which is an Intel 310 running Xenix/286;  Ball State
  1348.           University's AT&T 3B2/300, UNIX PC, and VAX-11/785 (4.3BSD
  1349.           and VAX/VMS) systems.  In addition J. Brian Waters provided
  1350.           feedback to help me make the code compilable on his Amiga
  1351.           using Manx/Aztec C.  The executable version 2.0 for MS-DOS
  1352.           is currently compiled with Borland's Turbo C++ 1.0.
  1353.  
  1354.           Thanks are due to the following people and many others too
  1355.           numerous to mention.
  1356.  
  1357.           J. Brian Waters <jbwaters@bsu-cs.bsu.edu>, who has worked
  1358.           diligently to port _z_o_o to AmigaDOS, created Amiga-specific
  1359.           code, and continues keeping it updated.
  1360.  
  1361.           Paul Homchick <rutgers!cgh!paul>, who provided numerous
  1362.           detailed reports about some nasty bugs.
  1363.  
  1364.           Bill Davidsen <davidsen@crdos1.crd.ge.com>, who provided
  1365.           numerous improvements to this manual, contributed
  1366.           multiscreen help, and provided many useful bug reports, bug
  1367.           fixes, code improvements, and suggestions.
  1368.  
  1369.           Mark Alexander <amdahl!drivax!alexande>, who provided me
  1370.           with some bug fixes.
  1371.  
  1372.           Haruhiko Okumura, who wrote the _a_r archiver and some
  1373.           excellent compression code, which I adapted for use in _z_o_o.
  1374.  
  1375.           Randal L. Barnes <rlb@skyler.mavd.honeywell.com>, who (with
  1376.           Randy Magnuson) wrote the code to support the preservation
  1377.           of file timestamps under VAX/VMS.
  1378.  
  1379.           Raymond D. Gardner, who contributed replacement
  1380.  
  1381.  
  1382.  
  1383.      Page 21                                          (printed 3/9/94)
  1384.  
  1385.  
  1386.  
  1387.  
  1388.  
  1389.  
  1390.      ZZZZOOOOOOOO((((1111))))            UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV ((((JJJJuuuullllyyyy 7777,,,, 1111999999991111))))             ZZZZOOOOOOOO((((1111))))
  1391.  
  1392.  
  1393.  
  1394.           uncompression code that on some systems is twice as fast as
  1395.           the original.
  1396.  
  1397.           Greg Yachuk and Andre Van Dalen, who independently modified
  1398.           MS-DOS _z_o_o to support multivolume archives.  (This support
  1399.           is not yet in this official release.)
  1400.  
  1401.      AAAAUUUUTTTTHHHHOOOORRRR
  1402.           Rahul Dhesi
  1403.  
  1404.  
  1405.  
  1406.  
  1407.  
  1408.  
  1409.  
  1410.  
  1411.  
  1412.  
  1413.  
  1414.  
  1415.  
  1416.  
  1417.  
  1418.  
  1419.  
  1420.  
  1421.  
  1422.  
  1423.  
  1424.  
  1425.  
  1426.  
  1427.  
  1428.  
  1429.  
  1430.  
  1431.  
  1432.  
  1433.  
  1434.  
  1435.  
  1436.  
  1437.  
  1438.  
  1439.  
  1440.  
  1441.  
  1442.  
  1443.  
  1444.  
  1445.  
  1446.  
  1447.  
  1448.  
  1449.      Page 22                                          (printed 3/9/94)
  1450.  
  1451.  
  1452.  
  1453.